# 机构名称  ： 忆玖月
# 创始人   ：　韩宏
# 开发时间  ： 2023/10/8  11:29

import pygame
from hz_plane_sprites import *

# 初始化游戏
pygame.init()

# 编写游戏代码
# 1.创建游戏窗口
screen = pygame.display.set_mode((480, 700))

# 2.绘制背景图像
# 1> 加载图像数据
background = pygame.image.load("../images/background.png")
# 2> blit绘制图像
screen.blit(background, (0, 0))


# 3.绘制英雄飞机图片
hero = pygame.image.load("../images/me1.png")
screen.blit(hero, (200, 500))


# update 更新屏幕显示
pygame.display.update()

# 创建时钟对象
clock = pygame.time.Clock()

# a. 定义rect记录英雄飞机的初始位置
hero_rect = pygame.Rect(200, 500, 102, 126)

"""===================================================================================="""

# 创建敌机的精灵
enemy = GameSprite("../images/enemy1.png")

# 创建敌机的精灵族
enemy_group = pygame.sprite.Group(enemy)

"""===================================================================================="""

# 游戏循环 -> 意味着游戏正式开始
while True:

    # 可以指定循环体内部的代码执行的频率
    clock.tick(60)

    # 捕获事件，监听事件
    for event in pygame.event.get():

        # 判断用户是否点击了关闭按钮
        if event.type == pygame.QUIT:
            print("退出游戏...")

            # 卸载所有模块
            pygame.quit()

            # 直接退出系统
            exit()

    # b. 修改飞机的位置
    hero_rect.y -= 1
    if hero_rect.y <= -126:
        hero_rect.y = 700

    # c. 调用blit方法绘制图像
    screen.blit(background, (0, 0))
    screen.blit(hero, hero_rect)

    # 让精灵组调用两个方法
    # update - 让族中的所有精灵更新位置
    enemy_group.update()

    # draw - 在screen上绘制所有精灵
    enemy_group.draw(screen)

    # d. 调用update方法更新显示
    pygame.display.update()

# 退出
pygame.quit()
